This invention relates generally to service oriented architectures, and more particularly to a system, article, and method for successively refining a collection of entities in a service registry environment.
Service Oriented Architecture (SOA) is a development of distributed computing and modular programming in which existing or new technologies are grouped into autonomic systems. SOAs employ software services to build applications. Services are relatively large, intrinsically unassociated units of functionality with externalized service descriptions. SOAs typically implement functionalities most humans would recognize as a service, such as filling out an online application for an account, viewing an online bank statement, or placing an online booking or airline ticket order. Thus, SOA serves to align business and information technology (IT).
In an SOA environment, instead of services embedding calls to each other in their source code, protocols are defined that describe how one or more services may talk to each other. In an SOA environment, one or more services communicate with one another by passing data from one service to another, or coordinate an activity between one or more services. In addition, independent services may be accessed without the knowledge of the underlying platform implementation. In this manner, autonomic services may be orchestrated into higher-level services. In SOA, the application architecture has all its functions and services defined using a description language having invokable interfaces that are called to perform business processes. In SOA, each interaction is independent of each and every other interaction, and the interconnect protocols of the communicating devices (i.e., the infrastructure components that determine the communication system do not affect the interfaces). Because interfaces are platform-independent, a client from any device using any operating system in any language may use the service.
A current challenge in SOA development is to build business driven composite services atop of autonomic informational services. By defining a methodology for the use and re-use of software services and business processes, which typically encompass multiple service invocations, SOA has the potential to provide a great deal of flexibility and cost savings to enterprises that rely on information technology (IT).
The SOA concept is based upon an architectural style that defines an interaction model between three primary building blocks: a) a service provider, which publishes a service description and provides the implementation for the service; b) a service requester, which can either use the uniform resource identifier (URI) for the service description directly, or find the service description in a service registry and bind and invoke the service; and c) a service broker, which provides and maintains the service registry using, for example, the Universal Description Discovery and Integration (UDDI) specification, which defines a way to publish and discover information about web services.
A web service is a software application designed to support interoperable machine-to-machine interaction over a network, and is frequently simple web application program interfaces (API) that may be accessed over a network, such as the Internet, and executed on a remote system hosting the requested services. Web services may provide an example of an SOA implementation in which the basic unit of communication is a message, rather than an operation, by making functional building blocks accessible over standard Internet protocols that are independent from platforms and programming languages.
WebSphere® is an SOA software offering of International Business Machines Corporation (IBM). WebSphere is designed to set up, operate, and integrate electronic business (e-business) applications across multiple computing platforms using Java-based Web technologies. Electronic business methods enable companies to link their internal and external data processing systems more efficiently and flexibly, to work more closely with suppliers and partners, and to better satisfy the needs and expectations of their customers. WebSphere® includes both the run-time components, such as WebSphere® Application Server (WAS), and the tools to develop applications that will run on WAS.
While service oriented architecture (SOA) has the potential to drive business agility, business-process vitality, reuse of existing services, improved connectivity and closer alignment of information technology (IT) to business, making the most of SOA potential depends on how well the services are governed and managed in an SOA. Businesses without proper governance and management risk losing control over their services, and face barriers to reusing services, such as redundant services, misalignment with business processes, and lack of application consistency and integrity.
IBM's WebSphere® Service Registry and Repository (WSRR) provides management and governance capabilities that enable an enterprise to get the most business value from their SOA. WSRR facilitates storing, accessing and managing service information, called service metadata, so that users can easily select, invoke, govern and reuse their services.
The publish and find capabilities of WebSphere® Service Registry and Repository promote service reuse in SOA projects by providing greater visibility of and easier access to existing services. A Service discovery engine discovers services on both IBM WebSphere® Application Server and Microsoft® .NET platforms, allowing an enterprise to keep an accurate record of deployed services in their SOA. Faceted search provides a natural and user-friendly way to find services by allowing a user to progressively refine search results using attributes, document types or classification. The WebSphere® Service Registry and Repository helps in rapidly creating or modifying business processes using existing services. WSRR has a query mechanism that allows a user to search and find the services that best fit the requirements of a given process.
WebSphere® Service Registry and Repository enables dynamic and efficient access to services information by both runtime applications and processes that facilitate better connectivity and efficiency. WSRR increases runtime flexibility of applications integrated by an enterprise service bus (ESB) by enabling selection of services based on service metadata. WSRR manages the service metadata, as well as service interactions, dependencies and redundancies. WSRR classifies services based on business objectives, manages policies for service usage, and monitors how services are changed and versioned. WSRR also links related binary documents (such as Microsoft Word and Adobe Portable Document Format (PDF) files to service metadata. The linkage capability provided by WSRR helps optimize the use of services in an SOA by exchanging rich service metadata with runtime monitoring tools and operational data stores.